////////////////////////////////////////////////////////////////////////////////
/*! \file
 * \brief Enter a brief description here.
 *
 * Enter a detailed description here. (optional)
 *
 * \author Ivo Wingelaar
 * \date 2011
 * \version 0.0.1
 * \copyright
 */
////////////////////////////////////////////////////////////////////////////////

#ifndef __LYNX_CONFIG_HPP_INCLUDED__
#define __LYNX_CONFIG_HPP_INCLUDED__

// Needed to tell the memory library that we won't be using any symbols.
#define _MYTH_MEMORY_EXTENSION_

////////////////////////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////////////////////////
#include <Myth.hpp>
#include <MythMath.hpp>
#include <MythMemory.hpp>
#include <MythStream.hpp>

#include <vector>
#include <list>

////////////////////////////////////////////////////////////////////////////////
//! \brief The major version of the Lynx engine.
#define LYNX_SDK_VERSION_MAJOR 0

////////////////////////////////////////////////////////////////////////////////
//! \brief The minor version of the Lynx engine.
#define LYNX_SDK_VERSION_MINOR 0

////////////////////////////////////////////////////////////////////////////////
//! \brief The version number of the Lynx engine.
#define LYNX_SDK_VERSION_VERSION 1

////////////////////////////////////////////////////////////////////////////////
//! \brief A packed value with all the different version elements.
#define LYNX_SDK_VERSION LYNX_SDK_VERSION_MAJOR * 100 + LYNX_SDK_VERSION_MINOR * 10 + LYNX_SDK_VERSION_VERSION

#ifdef _MYTH_WINDOWS_
#define _LYNX_WINDOWS_
#endif // _MYTH_WINDOWS_

#ifdef _MYTH_LINUX_
#define _LYNX_LINUX_
#endif // _MYTH_LINUX_

////////////////////////////////////////////////////////////////////////////////
//! \brief Declare a Lynx call convention for convenience.
#define _LYNX_CALL_CONV_ _MYTH_CALL_CONV_

#if (!defined _LYNX_EXTENSION_)
#if ((!defined _LYNX_STATIC_LIBRARY_) && (!defined _LYNX_DYNAMIC_LIBRARY_))
#error Please either define "_LYNX_STATIC_LIBRARY_" or "_LYNX_DYNAMIC_LIBRARY_"
#endif

#ifdef _LYNX_WINDOWS_
#ifdef _LYNX_STATIC_LIBRARY_
#define _LYNX_API_
#endif // _LYNX_STATIC_LIBRARY_

#ifdef _LYNX_DYNAMIC_LIBRARY_
#ifdef _LYNX_EXPORT_
#define _LYNX_API_ __declspec(dllexport)
#else
#define _LYNX_API_ __declspec(dllimport)
#endif // _LYNX_EXPORT_
#endif // _LYNX_DYNAMIC_LIBRARY_
#endif // _LYNX_WINDOWS_

#ifdef _LYNX_LINUX_
#define _LYNX_API_
#endif // _LYNX_LINUX_
#endif // _LYNX_EXTENSION_

#endif // __LYNX_CONFIG_HPP_INCLUDED__

